tg-me.com/cppproglib/5740
Create:
Last Update:
Last Update:
🔍 Memory leaks в C++
Программа ест все больше памяти? Скорее всего у вас memory leak
. Это не приговор и можно исправить, и вот как
📝 Пошаговое решение:
- Используйте Valgrind
или AddressSanitizer
- Найдите несоответствие new/delete
- Замените сырые указатели на smart pointers
- Проверьте циклические ссылки
// ❌ Проблемный код
void problematic() {
int* data = new int[1000];
if (some_condition) {
return; // Утечка памяти!
}
delete[] data;
}
// ✅ Исправленный код
void fixed() {
auto data = std::make_unique<int[]>(1000);
if (some_condition) {
return; // Память освободится автоматически
}
}
⚠️ Частые ошибки:
- Забывают
delete
при раннем return- Путают
delete
и delete[]
💡 Совет:
- Компилируйте с флагом
-fsanitize=address
для автоматического поиска утечек.Библиотека C/C++ разработчика #буст